#ifndef __DATACENTER_H_
#define __DATACENTER_H_

#include <stdbool.h>
#include "../GlobalMessage.h"

bool DataCenterInit();
bool IsUserExist(const char *name);
bool AddNewUser(const char *name ,const char *passwd);
bool IsAccountEqual(const char * name, const char* passwd);

//数据库添加新朋友
bool AddFriend(const char *user,const char *friend);

// 添加未读消息
bool AddUnreadMsg(MSG *m);

// 好友列表
char *FriendCollect(const char *name);

// 将好友申请加入表中
bool NewFriendApplication(const char *fromname,const char *toname);

// 删除已查看的好友申请
bool DeleteFriendApplication(const char *fromname,const char *toname);

// 好友申请用户名组合成一个用分号 ; 分隔的字符串，并返回这个字符串
char *SearchFriendApplication(const char *username);

// 判断是否是好友
bool IsFriendExist(const char *user,const char *friend);

// 删除好友
bool DeleteFriend(const char *user,const char *friend);

// 添加聊天记录
bool AddInsertMessages(MSG *m);



// 群管理
// 判断群是否存在
bool IsExistsGroup(const char *groupname);

// 创建群
bool ServerCreateGroup(const char *groupname,const char *creator);

// 添加用户进入群成员关系表
bool InserintoGroupMembers(const char *groupname,const char *username,int quanxian);

// 有人申请入群，将其请求添加进groupapplication表中
bool InsertGroupApplication(const char *groupname,const char *username);

// 审批入群通知，将其从表中删除
bool DeleteGroupApplication(const char *groupname,const char *username);

// 判断该用户是否已经在指定的群中
bool IsExistGroupMember(const char *groupname,const char *username);

// 将群邀请添加到表中
bool InsertGroupInvite(const char *manger,const char *username,const char *groupname);

//审批群邀请，将其从表中删除
bool DeleteGroupInvite(const char *username,const char *groupname);

//查看群是否有username管理
bool IsManageGroup(const char *username,const char *groupname);

// 根据用户名查找该用户管理的群的数量
int CountGroupManger(const char *username);

// 根据用户名查找该用户管理的所有的群的名称
char *SearchMangerName(const char *username);

// 根据组名找所有申请加入该群组的用户 用，分隔
char *SearchGroupApplication(const char *groups);

// 判断申请入群表中是否存在特定信息
bool IsExistGroupApplication(const char *username,const char *groupname);

// 根据用户名展示所有的邀请入群信息 谁 邀请加入 群名 manager，groupname；
char *SearchGroupInvite(const char *username);

// 查看邀请表中是否存在特定邀请
bool IsExistGroupInvition(const char*groupname,const char *username);

// 查找所有的群
char *SearchGroups();

// 删除群
bool DeleteGroup(const char *groupname,const char *username);

char *GetChatHiostory(const char *fromname, const char *toname);

bool AddChatHistory(const char *fromname, const char *toname, const char *content);

#endif